<?php
/* 
* @Author: LDF QQ 47121862
* @Date:   2014-05-14 15:37:24
* @Last Modified by:   LDF QQ 47121862
* @Last Modified time: 2014-05-22 20:52:31
*/
//商品属性模型
class AttrClassModel extends Model{
	public $table = 'attr_class';
	public $validate=array(
		array('attr_name','nonull','属性名不能为空!',2,3),
		array('show_type','nonull','必须选一个类型!',2,1),
		array('gtid','checkCache','商品类型不存在!',2,1),
		// array('attr_name','checkAttrClass','属性名存在!',2,1),
	);
	//自定义验证，验证缓存
	public function checkCache($name, $value, $msg){
		//判断缓存中的商品类型是否存在
		$goodsCache = cache('goodsType');
		if(!array_key_exists($value, $goodsCache)){
			return $msg;
		}
		return true;
	}
	//自定义验证，验证属性名是否存在
	public function checkAttrClass($name, $value, $msg){
		// 判断属性是否存在
		if($this->where(array('attr_name'=>$value))->find()){
			return $msg;
		}
		return true;
	}
	//添加商品属性
	public function addAttrClass(){
		if($this->create()){
			$cid = $this->add();
			//插入属性值
			if($cid){
				$type = Q('show_type');
				//根据show_type的值插入属性值
				if($this->$type($cid,$_POST['attr_value'])){
					return true;
				}
				$this->error='添加属性值失败...';
				return false;
			}
			$this->error='添加属性失败...';
			return false;
		}else{
			return false;
		}
	}
	//修改属性
	public function saveAttrClass(){
		if($this->create()){
			$cid = $this->save();
			//修改属性值
			if($cid){
				$acid = Q('acid',0,'intval');
				M('attr_value')->where('acid='.$acid)->del();
				//根据show_type的值插入属性值
				$type = Q('show_type');
				if($this->$type($acid,$_POST['attr_value'])){
					return true;
				}
				$this->error='修改属性值失败...';
				return false;
			}
			$this->error='修改属性失败...';
			return false;
		}else{
			return false;
		}
	}
	//删除属性
	public function delAttrClass(){
		$acid = Q('acid',0,'intval');
		if($this->where('acid='.$acid)->del()){
			if(M('attr_value')->where('acid='.$acid)->del()){
				return true;
			}
			$this->error='删除属性值失败....';
			return false;
		}else{
			$this->error='删除属性失败';
			return false;
		}
	}
	// ===============================================
	//根据show_type的值插入属性值
	private function input($id,$d){
		$db = M('attr_value');
		$data = array(
			'acid'=>$id,
			'attr_value'=>$d[0]
		);
		return $db->add($data);
	}
	private function selected($id,$d){
		$db = M('attr_value');
		$s=null;
		foreach ($d as $v) {
			//如果属性值为空跳过
			if(empty($d)) continue;
			$data = array(
				'acid'=>$id,
				'attr_value'=>$v
			);
			$s[]=$db->add($data);
		}
		return $s;
	}
	//文本域
	private function textarea($id,$d){
		$db = M('attr_value');
		$data = array(
			'acid'=>$id,
			'attr_value'=>$d[0]
		);
		return $db->add($data);
	}
	//单选
	private function radio($id,$d){
		$db = M('attr_value');
		$s=null;
		foreach ($d as $v) {
			//如果属性值为空跳过
			if(empty($d)) continue;
			$data = array(
				'acid'=>$id,
				'attr_value'=>$v
			);
			$s[]=$db->add($data);
		}
		return $s;
	}
	//复选
	private function checkbox($id,$d){
		$db = M('attr_value');
		$s=null;
		foreach ($d as $v) {
			//如果属性值为空跳过
			if(empty($d)) continue;
			$data = array(
				'acid'=>$id,
				'attr_value'=>$v
			);
			$s[]=$db->add($data);
		}
		return $s;
	}
}
